package javabean.MerchantInfo;

import cn.hutool.core.annotation.Alias;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

@Data
@ApiModel(description = "取现业务配置")
public class CashConfig {

    @Alias("cash_type")
    @ApiModelProperty(value = "取现类型【D0：当日到账；可取现资金包括当天的交易资金；;T1：下个工作日到账；默认值;D1：下个自然日到账;;DM：当日到账；可取现资金不包括当天的交易资金；;示例值：T1】", required = false)
    @Length(min = 1, max = 2, message = "cashType 长度范围：1~2")
    private String cashType;

    @Alias("fix_amt")
    @ApiModelProperty(value = "取现手续费（固定/元）【fix_amt与fee_rate至少填写一项， 需保留小数点后两位，不收费请填写0.00；示例值：1.00；;注：当cash_type=D1时为节假日取现手续费；当cash_type=T1时为工作日取现手续费】", required = false)
    @Length(min = 1, max = 6, message = "fixAmt 长度范围：1~6")
    private String fixAmt;

    @Alias("fee_rate")
    @ApiModelProperty(value = "取现手续费率（%）【fix_amt与fee_rate至少填写一项，需保留小数点后两位，取值范围[0.00,100.00]，不收费请填写0.00；示例值：0.05;注：1、如果fix_amt与fee_rate都填写了则手续费=fix_amt+支付金额*fee_rate;2、当cash_type=D1时为节假日取现手续费；当cash_type=T1时为工作日取现手续费】", required = false)
    @Length(min = 1, max = 6, message = "feeRate 长度范围：1~6")
    private String feeRate;

    @Alias("weekday_fix_amt")
    @ApiModelProperty(value = "D1工作日取现手续费固定金额【单位元，需保留小数点后两位。不收费请填写0.00；示例值：1.00;cash_type=T1时，不生效 ；cash_type取现类型为D1时，遇工作日按此费率结算，若未配置则默认按照节假日手续费计算】", required = false)
    @Length(min = 1, max = 6, message = "weekdayFixAmt 长度范围：1~6")
    private String weekdayFixAmt;

    @Alias("weekday_fee_rate")
    @ApiModelProperty(value = "D1工作日取现手续费率【单位%，需保留小数点后两位。取值范围[0.00，100.00]，不收费请填写0.00；示例值：0.05;cash_type=T1时，不生效 ；cash_type取现类型为D1时，遇工作日按此费率结算 ，若未配置则默认按照节假日手续费计算】", required = false)
    @Length(min = 1, max = 6, message = "weekdayFeeRate 长度范围：1~6")
    private String weekdayFeeRate;

    @Alias("out_fee_flag")
    @ApiModelProperty(value = "是否取现手续费外扣【1:外扣 2:内扣（默认）；示例值：2】", required = false)
    @Length(min = 1, max = 1, message = "outFeeFlag 长度范围：1~1")
    private String outFeeFlag;

    @Alias("out_fee_huifu_id")
    @ApiModelProperty(value = "手续费承担方【手续费外扣时必需指定手续费承担方ID ；示例值：6666000123123123】", required = false)
    @Length(min = 1, max = 18, message = "outFeeHuifuId 长度范围：1~18")
    private String outFeeHuifuId;

    @Alias("out_fee_acct_type")
    @ApiModelProperty(value = "手续费外扣的账户类型【01-基本户，05-充值户，09-营销户；示例值：01不填默认01】", required = false)
    @Length(min = 1, max = 2, message = "outFeeAcctType 长度范围：1~2")
    private String outFeeAcctType;

    @Alias("is_priority_receipt")
    @ApiModelProperty(value = "是否优先到账【Y：是 ，N：否。不填，默认值为否。仅在cash_type为D1 和 T1 时生效。示例值：Y】", required = false)
    @Length(min = 1, max = 1, message = "isPriorityReceipt 长度范围：1~1")
    private String isPriorityReceipt;

}